import java.util.Scanner;

public class works1{
	static Scanner sc;

	public static void main(String [] args){
		sc = new Scanner(System.in);
//		swap1();
//		swap2();
//		putout();
//		na_qi();
//		dytx();
//		bitOp();
//		radix();
//		delat();
//		pnumber();
//		letter();
		black();
		fish();
	}
	
	public static void swap1(){
		int num1,num2,num3;
		System.out.println("题目为：交换两个变量的值(二种方法)");
		System.out.println("第一种方法：");
		System.out.print("请输入第一个数：");
		num1=sc.nextInt();
		System.out.print("请输入第二个数：");
        	num2=sc.nextInt();
		System.out.printf("您输入的原始数据为：num1 = %d，num2 = %d\n",num1,num2);
		num3=num1;
		num1=num2;
		num2=num3;
		System.out.printf("    转换后数据结果：num1 = %d，num2 = %d\n",num1,num2);
		System.out.println("================================================");
	}
	
	public static void swap2(){
        int num1,num2;
		System.out.println("题目为：交换两个变量的值(二种方法)");
        System.out.println("第二种方法：");
        System.out.print("请输入第一个数：");
        num1=sc.nextInt();
        System.out.print("请输入第二个数：");
        num2=sc.nextInt();
        System.out.printf("您输入的原始数据为：num1 = %d，num2 = %d\n",num1,num2);
        num1^=num2;
        num2^=num1;
        num1^=num2;
        System.out.printf("    转换后数据结果：num1 = %d，num2 = %d\n",num1,num2);
		System.out.println("=================================================");
    	}

	public static void putout(){
		System.out.println("题目为：输出1 - 1/2 + 1/3 - 1/4 + 1/5 .... + 1/99 - 1/100的结果?");
		float a=0;
		for (float i=1;i<=100;i++){
			if (i%2!=0){
				a+=1.0/i;
			}else{
				a-=1.0/i;
			}
		}
		System.out.printf("计算结果为：%.2f\n",a);
		System.out.println("=================================================");
	}

	public static void na_qi(){
		System.out.println("斐波那契");
		System.out.println("输入指定位置，可输出对应位置斐波那契值");
		System.out.println();
		System.out.print("请输入你需要的位数：");
		int n=sc.nextInt();
		System.out.printf("第%d位的斐波那契值为：%d\n",n,one(n));
		System.out.println("=====================================================");
	}
	public static int one(int n){
		if(n<=2){
			return 1;
		}
		return one(n-1)+one(n-2);
	}

	public static void bitOp(){
		System.out.print("请输入第一个数值：");
		int a=sc.nextInt();
		System.out.print("请输入第二个数值：");
		int b=sc.nextInt();
		int min;
		for(min=a>b?b:a;min>0;min--){
			if(b % min == 0 && a % min == 0){
				break;
			}
		}
		System.out.printf("%d和%d的最大公约数为：%d\n",a,b,min);
		System.out.println("=====================================================");
	}

	public static void radix(){
		 System.out.println("任何进制转十进制\n");
 		 System.out.print("请输入转化前进制：");
         int b=sc.nextInt();
		 System.out.printf("请输入%d进制数值：",b);
         int a=sc.nextInt();
         int r=radix_1(a,b);
		if(r==0){
			System.out.printf("您输入的%d不是八进制数值\n");
		} else {
			System.out.printf("%d的十进制数值为：%d\n",a,r);
			System.out.println("=====================================================");
		}
	
	}
	public static int radix_1(int n,int m){
		int bit=0,sum=0,i,s=1;
		if(n<0){
			s=-1;
			n*=s;
		}
		while(n>0){
			int a = n%10;
			if(a>(m-1)){
				return 0;
			}
			for(i=0;i<bit;i++){
				a*=m;
			}
			sum+=a;
			bit++;
			n/=10;
		}
		return sum*s;
	}

	public static void delat(){
		boolean quit=false;
		while(!quit){
			System.out.printf("0. 打印等腰梯形!\n");
			System.out.printf("1. 打印左下直角三角形!\n");
	        System.out.printf("2. 打印右下直角三角形!\n");
		    System.out.printf("3. 打印左上直角三角形!\n");
	        System.out.printf("4. 打印右上直角三角形!\n");
	        System.out.printf("5. 退出!\n");
            System.out.printf("请输入[0 - 5]: ");
            int a=sc.nextInt();
			if(a==0){
				 System.out.println("输出可控制等腰梯形");
                 System.out.print("请输入等边梯形的层数：");
                 int b=sc.nextInt();
                 System.out.print("请输入等边梯形首行宽度：");
                 int c=sc.nextInt();
                 txdy(b,c);
			}else if(a!=5){
				System.out.print("请输入三角层数：");
                int b=sc.nextInt();
				delat_1(a,b);
			}
			switch (a){
			case 0:
            	System.out.printf("现在正在打印等腰梯形!\n");break;
        	case 1:
                System.out.printf("现在正在打印左下直角三角形!\n");break;
          	case 2:
                System.out.printf("现在正在打印右下直角三角形!\n");break;
            case 3:
                System.out.printf("现在正在打印左上直角三角形!\n");break;
          	case 4:
            	System.out.printf("现在正在打印右上直角三角形!\n");break;
          	case 5:
                quit=true;break;
            }
		System.out.println("=====================================================");
		}
	}
	public static void delat_1(int m,int n){
		for (int i=1;i<=n;i++){
			if(m==1||m==2){
				delat_2(i,m);
				delat_3(i,m,n);
			}else{
				delat_3(i,m,n);
				delat_2(i,m);
			}
			System.out.println();
		}
	}
	public static void delat_2(int c,int d){
		for(int j=1;j<=c;j++){
			if (d==1||d==4){
            	System.out.print("*");
            }else if (d==2||d==3){
                System.out.print(" ");
            }
        }
	}
	public static void delat_3(int c,int d,int f){
		for(int k=1;k<=(f-c+1);k++){
			if (d==1||d==4){
            	System.out.print(" ");
            }else if(d==2||d==3){
                System.out.print("*");
            }
        }
	}
	public static void txdy(int a,int b){
    	for (int i=1;i<=a;i++){
        	for (int j=1;j<((a+1)-i);j++){
            	System.out.print(" ");
             }       
             for (int k=1;k<(2*i+(b-1));k++){
                System.out.print("*");
             }       
             System.out.println();
         }       
    }

	public static void pnumber(){
		int a,b=0,c;
		System.out.println("题目为：判断用户输入的数是否是回文数\n");
		System.out.printf("请输入数值: ");
               	a=sc.nextInt();
		c=a;
		while(a>0){
			b=b*10+a%10;
			a=a/10;
		}
		if(c==b){
			System.out.printf("%d是回文数\n",c);
		}else{
			System.out.printf("%d不是回文数\n",c);
		}
		System.out.println("=====================================================");
	}

	public static void letter(){
		int b,c,e;
		char a,d;
		System.out.println("题目为：输入一个字符，转换大小写(不能使用if)");
		System.out.printf("请输入A-Z/a-z之间的字符:");
		a = sc.next().charAt(0);
		b=(int)a;
		c = b>=97 ? (b-32) : (b+32);
		d=(char)c;
		System.out.printf("%c 转换后为：%c \n",a,d);
		System.out.println("=====================================================");

	}

	public static void black(){
		int oldYear=1900;
		System.out.println("题目为：已知1900年一月一号是星期一，求今年有多少个黑色星期五(13号是星期五即是黑色星期五)\n");
        sc=new Scanner(System.in);
        int i,year,days=0,flag,month;
        System.out.print("请输入年：");
        year=sc.nextInt();
		days=sumYear(year,oldYear);
        days+=13;
        flag=isYmd(year);
        for(month=1;month<=12;month++){
            if(days%7==5){
                System.out.printf("%d的%d月十三号是黑色星期五\n",year,month);
            }
            switch(month){
            case 1 : 
			case 3 :
			case 5 :
			case 7 :
			case 8 :
			case 10:
				days+=31; 
				break;
            case 4 : 
            case 6 : 
            case 9 : 
            case 11: 
				days+=30; 
				break;
			case 2 : 
				days+=28+flag; 
				break;
            }
        }
		System.out.println("=====================================================");
	}

	public static void fish(){
		int oYear=2000;
		System.out.println("题目为：张三从2000年1月1号开始过着三天打鱼两天晒网的日子，指定年月日求在打鱼还是晒网");
		System.out.print("请输入年份：");
		int year=sc.nextInt();
		System.out.print("请输入月份：");
		int month=sc.nextInt();
		System.out.print("请输入日：");
		int day=sc.nextInt();
		if(year<oYear){
			System.out.println("您的数据不合法！");
		}
		sumYear(year,oYear);
	}
	public static int sumYear(int num,int oldYe){
		int i,ret,sum=0;
		for(i=oldYe;i<num;i++){
			ret=isYmd(i);
			if(ret==1){
				sum+=366;
			}else{
				sum+=365;
			}
		}
		return sum;
	}
	public static int isYmd(int a){
		return (a%400==0||(a%4==0&&a%100!=0))?1:0;
	}

}
